home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 06 - 1990 / 06.07 Jul 90 / Commando Programming ƒ / Rezscripts / RezC.MENU < prev    next >
Encoding:
Text File  |  1989-08-09  |  2.0 KB  |  90 lines  |  [TEXT/MPS ]

  1. #########################################
  2. ###    File RezC.MENU
  3. ### Generates Rez input for Menu resource
  4. ### W. Powell  1988
  5.  
  6. Set Exit 0
  7. Set rid {1}
  8. Echo -n "Resource ∂'MENU∂' ({rid}"
  9. Shift 1
  10. If "{1}" == "-nms"
  11.     Echo -n ",∂"{2}∂""
  12.     Shift 2
  13. End
  14. # Menu state and title
  15. Set enflg "{1}"
  16. Set Title "{2}"
  17. Set ProcID "{3}"
  18. Shift 3
  19.  
  20. # Resource attributes
  21. If ( "{1}" == "-sy" ) ; Echo -n ",SysHeap" ; Shift ; End
  22. If ( "{1}" == "-pu" ) ; Echo -n ",Purgeable" ; Shift ; End
  23. If ( "{1}" == "-lo" ) ; Echo -n ",Locked" ; Shift ; End
  24. If ( "{1}" == "-Pr" ) ; Echo -n ",Protected" ; Shift ; End
  25. If ( "{1}" == "-PL" ) ; Echo -n ",PreLoad" ; Shift ; End
  26. Echo ") ∂{"
  27. Set OldActive "{Active}"
  28. Set OldTarget "{Target}"
  29. NewTempFile 
  30. If {Status} != 0
  31.     Echo "### {0} Error: Can't open temporary file.">>Dev:StdErr
  32.     Echo "###    Try closing some windows or freeing disk space"
  33.     >>Dev:StdErr
  34.     Exit 2
  35. End
  36. Set tempfil "{Active}"
  37. ### Restore original target/active
  38. If "{OldTarget}" != ""
  39.     Open "{OldTarget}"
  40. End
  41. Open "{OldActive}"
  42. Unset OldTarget
  43. Unset OldActive
  44. Set FlgCnt 0
  45. Set DoneFlg 0
  46. Set bif "" # binary item flags
  47. Loop
  48.     Set FlgCnt `Evaluate {FlgCnt} + 1`
  49.     RezC.MENU.sub1 >>"{tempfil}"
  50.     Set State {Status}
  51.     If {State} == 10 || {State} == 110
  52.         Set bif "0{bif}"    # disabled item
  53.     Else
  54.         Set bif "1{bif}"    # enabled item
  55.     End
  56.     If {State} >= 100 
  57.         Set DoneFlg 1
  58.         Break 
  59.     End
  60.     Break If {FlgCnt} >= 31
  61. End
  62. If {DoneFlg} == 0
  63.     Loop    
  64.         RezC.MENU.sub2 >>"{tempfil}"
  65.         Break If {Status} >= 100
  66.     End
  67. End
  68. If {FlgCnt} < 31 # finish building enable flags
  69.     Loop
  70.         Set bif "1{bif}"
  71.         Set FlgCnt `Evaluate {FlgCnt} + 1`
  72.         Break If {FlgCnt} >= 31
  73.     End
  74. End
  75. Echo "∂t{rid},∂t∂t∂/* Menu ID *∂/"
  76. Echo "∂t{ProcID},∂t∂/* Menu DefProc ID *∂/"
  77. Echo "∂t0b{bif},∂t∂/* Item enable flags *∂/"
  78. Echo "∂t{enflg},∂t∂t∂/* Whole menu enable *∂/"
  79. If "{Title}" == "apple"
  80.     Echo "∂tapple,∂n∂t∂t∂{"
  81. Else
  82.     Echo "∂t∂"{Title}∂",∂n∂t∂t∂{"
  83. End
  84. Catenate "{tempfil}"
  85. Echo "∂t∂t}"
  86. Close -n "{tempfil}"
  87. Echo "∂t∂};"
  88. Exit 0
  89. ### End File RezC.MENU
  90. #################################